import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: lishuo
 * Date: 2024-03-27
 * Time: 22:05
 */
public class Test1 {
    public static void main(String[] args) {

        // Jdk9新特性
        // ctrl+alt+v
//        List<String> list = List.of("张三", "张小三", "张四");
//
//        // list.for
//        for (String s : list) {
//
//        }
//
//        // list.fori
//        for (int i = 0; i < list.size(); i++) {
//
//        }
//
//        System.out.println("----------- 一行代码爽一下 stream 流 -----------");
//        list.stream().filter(name->name.startsWith("张")).filter(name->name.length() == 3).forEach(name-> System.out.println(name));

        // lambda表达式如果形参只有一个，书数据类型可以省略，括号可以省略

        // stream 只能用一次
        // stream 不改变原来集合

        // Stream.contact 合并两个 stream 流的时候，如果一个stream是a类型，另一个stream是b类型，那么最终合并为 a，b的父类型

        //创建一个集合，存储多个字符串元素
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张无忌-男-15","周芷若-女-14","赵敏-女-13","张三丰-男-100","谢广坤-男-41");

        // 需求1：把所有男性收集到list集合当中
        List<String> newList1 = list.stream()
                .filter(s -> "男".equals(s.split("-")[1]))
                .collect(Collectors.toList());
        System.out.println(newList1);

        // 需求2：把所有男性收集到set集合当中
        Set<String> newList2 = list.stream()
                .filter(s -> "男".equals(s.split("-")[1]))
                .collect(Collectors.toSet());
        System.out.println(newList2);

        // 需求3：把所有男性收集到map集合当中（键为姓名，值为年龄）
        Map<String, Integer> map = list.stream()
                .filter(s -> "男".equals(s.split("-")[1]))
                .collect(Collectors.toMap(
                        s -> s.split("-")[0],
                        s -> Integer.parseInt(s.split("-")[2])));
        System.out.println(map);
    }
}
